草庐IT

c++ - C 和 C++ 中 WINAPI 的区别

全部标签

c++ - lambda 表达式中引用捕获和非显式捕获的 constexpr 变量之间的区别

这个问题Accesstoconstexprvariableinsidelambdaexpressionwithoutcapturing回答了为什么下面示例中的ref-capture不是严格必要的。但另一方面,如果它被捕获,则会出现错误。错误似乎是由foo()的递归性质触发的。templateconstexprintbar(constT&x){//NOK//constexprintbar(Tx){//OKreturnx;}templateintfoo(constT&l){constexprautox=l()-1;autoy=[&]{returnbar(x);};//ifref-captu

c++ - 设置两个字符集的区别C++

问题我有两个排序集:set>alp1;set>alp;我需要找到集合差异:alp-alp1:尝试1set_difference(alp.begin(),alp.end(),alp1.begin(),alp1.end(),inserter(diff1,diff1.end()));但是,只有alp1的第一个元素被从alp中减去。尝试2itr=set_difference(alp.begin(),alp.end(),alp1.begin(),alp1.end(),diff1.begin());for(autoit=diff.begin();it尝试2错误:nomatchfor‘operato

c++ - for each 和 for_each 有什么区别?

我接手了一段旧代码,需要使用JNI调用。在代码中看到了foreach(in)的用法,但是这段代码无法在linux下编译。我很想知道foreach是怎么生成的,可以在哪些平台上使用,linux下编译的时候有没有?我试图理解foreach的语法,但是这些信息几乎不可能找到,但是有很多for_each的用法。在Windows平台上,我只使用VisualStudio2013(v120)编译成功,v14之后的版本出现异常。在linux平台下,我用下面的命令编译,报了很多错误。结果如下:g++-I/usr/java/jdk1.8.0_191/include/-I/usr/java/jdk1.8.0

C++ 自动类型转换为 std::string 和 char* 的区别

作为学习练习,我一直在研究C++中的自动类型转换是如何工作的。我知道通常应该避免自动类型转换,但我还是想通过了解它的工作原理来增加我对C++的了解。我已经创建了一个可以自动转换为std::string的StdStringConverter类,但是编译器(Debian上的g++4.3.4)似乎没有这样做将对象与真实的std::string进行比较时的转换(请忽略缺少按引用传递和不必要地创建临时对象的情况):#includeclassStdStringConverter{public:explicitStdStringConverter(std::stringname):m_name(na

c++ - fun(...) 和 (*fun)(...) 在 C/C++ 中使用函数指针有什么区别

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:Howcomepointertoafunctionbecalledwithoutdereferencing?Howdoesdereferencingofafunctionpointerhappen?假设我有一个像这样的函数指针:voidfun(){/*...*/};typedefvoid(*func_t)();func_tfp=fun;然后我可以通过以下方式调用它:fp();或(*fp)();有什么区别/

c++ - MSVC 并发运行时中的 parallel_for_each 和 parallel_for 有什么区别?

parallel_for_each的形式是:Concurrency::parallel_for_each(start_iterator,end_iterator,function_object);但是parallel_for也是类似的形式:Concurrency::parallel_for(start_value,end_value,function_object);那么在多核编程中使用的Concurrency::parallel_for和Concurrency::parallel_for_each算法有什么区别? 最佳答案 我不知

c++ - 有谁知道 endl(cout) 和 cout << endl 之间的区别?

我以为它们是同一回事,但是当我向在线法官发送代码时(使用endl(cout))它给了我“错误答案”的判决,然后我尝试发送另一个使用cout的代码法官接受了密码!有谁知道这些命令之间的区别? 最佳答案 据我所知没有。std::endl是一个接受流并返回流的函数:ostream&endl(ostream&os);当您将它应用于std::cout时,它只是立即应用该功能。另一方面,std::basic_ostream过载operator签名:templatebasic_ostream&operator&(*pf)(basic_ostrea

C++ - CPP 和 H 中定义的内联有什么区别

这不是一个“我有这个问题”的问题,而是一个“我真的很想了解该语言如何更好地工作”的问题。我最近开始遇到在给定类的.cpp文件中定义内联功能。我想了解内联功能的定义点之间的区别实际上是什么。在对CPP中定义的内联进行对象级分析时,似乎有更高百分比的C++中声明的内联(与在.h中定义的相反)被优化为映射函数而不是合法内联-是这是主要区别,或者这背后是否还有其他我没有看到的目的。 最佳答案 没有区别。inline是对编译器的提示,但现在并不是特别重要,因为编译器非常擅长在没有您帮助的情况下确定是否内联扩展函数(参见register关键字)

c++ - 混淆hashmap和hashtable的区别

我有一个困惑:我在许多帖子中读到,Hash-maps是作为二叉搜索树实现的,这使得各种操作时间复杂度为对数顺序。哈希表另一方面提供恒定时间提取。But,asIreadinthispost,nodifferencehasbeenprovidedintermsofthecomplexityforretrieval/searchingofelementsinthetwodatastructures.所以,这是我的问题-由于哈希表保证提供恒定的搜索时间复杂度,因此它们的实现必须与HashMap的实现不同。那么,如果散列映射不提供恒定时间搜索,为什么会有人使用散列映射。另外,为什么首先将它们实现

C++:非成员函数和静态成员函数的区别?

这里有一个简单的问题:静态成员函数(即不需要对象访问它(只需使用类标识符)即可调用的函数)与非成员函数有什么区别?在这里,我从概念上和功能上都在问。非成员函数在概念上是静态的吗? 最佳答案 静态成员函数可以访问类的私有(private)和protected部分。默认情况下,非成员函数不能这样做。只有在类(class)授予他们友元的情况下,他们才能做到这一点。要考虑的另一点是静态成员函数的名称在类的范围内。多个类可以有同名的静态成员函数而不用担心名称冲突。 关于C++:非成员函数和静态成员